home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_jvm32.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  26KB  |  1,278 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9.  
  10.  
  11. void r261jvm_return_code(T261* C){
  12. X52jvm_return_code((C)->_run_type/*8*/);
  13. }
  14.  
  15.  
  16. void r261jvm_target_descriptor_in(T261* C,T0* a1){
  17. X52jvm_target_descriptor_in((C)->_run_type/*8*/,a1);
  18. }
  19.  
  20.  
  21. void r261jvm_xastore(T261* C){
  22. X52jvm_xastore((C)->_run_type/*8*/);
  23. }
  24. /*No:TYPE_LIKE_CURRENT.is_like_argument*/
  25.  
  26.  
  27. T2 r261jvm_stack_space(T261* C){
  28. T2 R=0;
  29. /*[IF*/
  30. if(r261is_double(C)){
  31. R=2;
  32. }
  33. else{
  34. R=1;
  35. }
  36. /*FI]*/
  37. return R;
  38. }
  39.  
  40.  
  41. T6 r261is_double(T261* C){
  42. T6 R=0;
  43. R=X52is_double((C)->_run_type/*8*/);
  44. return R;
  45. }
  46.  
  47.  
  48. T2 r261jvm_expanded_from_reference(T0* a1){
  49. T2 R=0;
  50. return R;
  51. }
  52.  
  53.  
  54. T0* r264jvm_root_class(void){
  55. if(fBC12jvm_root_class==0){
  56. fBC12jvm_root_class=1;
  57. {T7*n=malloc(sizeof(*n));
  58. *n=M7;
  59. r7make(n,12);
  60. oBC12jvm_root_class=(T0*)n;
  61. }
  62. r7copy(((T7*)oBC12jvm_root_class),((T24*)(oBC12jvm))->_output_name/*0*/);
  63. r7extend(((T7*)oBC12jvm_root_class),'\57');
  64. r7append(((T7*)oBC12jvm_root_class),((T0*)ms13_1732));
  65. }
  66. return oBC12jvm_root_class;}
  67. /*No:TYPE_ARRAY.start_position*/
  68.  
  69.  
  70. void r264jvm_initialize_local(T2 a1){
  71. /*[IRF3.4opcode_aconst_null*/r28opcode((T28*)(oBC12code_attribute),1,1);
  72. /*]*/
  73. /*[IRF3.6jvm_write_local*/{T2 b1=a1;
  74. r28opcode_astore((T28*)(oBC12code_attribute),b1);
  75. }/*]*/
  76. }
  77. /*No:TYPE_ARRAY.run_type_memory*/
  78. /*No:TYPE_ARRAY.used_as_reference*/
  79. /*No:TYPE_ARRAY.is_user_expanded*/
  80.  
  81.  
  82. T2 r264id(T264* C){
  83. T2 R=0;
  84. R=((T23*)(r264run_class(C)))->_id/*4*/;
  85. return R;
  86. }
  87. /*No:TYPE_ARRAY.is_pointer*/
  88. /*No:TYPE_ARRAY.jvm_check_class_invariant*/
  89.  
  90.  
  91. T0* r264to_runnable(T264* C,T0* a1){
  92. T0* R=NULL;
  93. T0* _et2=NULL;
  94. T0* _et1=NULL;
  95. _et1=/*(IRF4.6array_of*/r265first(((T265*)((C)->_generic_list/*8*/)))/*)*/;
  96. _et2=X52to_runnable(_et1,a1);
  97. /*[IF*/
  98. if((_et2)==((void*)(NULL))){
  99. /*[IF*/
  100. if((_et2)!=((void*)(NULL))){
  101. r21add_position(X52start_position(_et2));
  102. }
  103. /*FI]*/
  104. r21add_position(X52start_position(_et1));
  105. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_28959);
  106. r21fatal_error((T21*)(oBC12eh),b1);
  107. }/*]*/
  108. }
  109. /*FI]*/
  110. /*[IF*/
  111. if(((C)->_run_type_memory/*16*/)==((void*)(NULL))){
  112. R=(T0*)C;
  113. /*[IF*/
  114. if((X52run_type(_et2))==((void*)(_et1))){
  115. C->_run_type_memory=(T0*)C;
  116. }
  117. else{
  118. {T264*n=malloc(sizeof(*n));
  119. *n=M264;
  120. r264final(n,(C)->_base_class_name/*4*/,X52run_type(_et2));
  121. C->_run_type_memory=(T0*)n;
  122. }
  123. }
  124. /*FI]*/
  125. }
  126.  else if((_et2)==((void*)(_et1))){
  127. R=(T0*)C;
  128. }
  129. else{
  130. {T264*n=malloc(sizeof(*n));
  131. *n=M264;
  132. r264with(n,(C)->_base_class_name/*4*/,(C)->_written_mark/*12*/,_et2);
  133. R=(T0*)n;
  134. }
  135. }
  136. /*FI]*/
  137. return R;
  138. }
  139.  
  140.  
  141. void r264load_basic_features(T264* C){
  142. T0* _rc=NULL;
  143. T0* _rf=NULL;
  144. T0* _et=NULL;
  145. _et=/*(IRF4.6array_of*/r265first(((T265*)((C)->_generic_list/*8*/)))/*)*/;
  146. /*[IF*/
  147. if(X52is_expanded(_et)){
  148. r23set_at_run_time((T23*)(X52run_class(_et)));
  149. }
  150. /*FI]*/
  151. _rc=r264run_class(C);
  152. _rf=r23get_feature_with(((T23*)_rc),((T0*)ms14_11896));
  153. _rf=r23get_feature_with(((T23*)_rc),((T0*)ms14_2840));
  154. _rf=r23get_feature_with(((T23*)_rc),((T0*)ms14_2855));
  155. _rf=r23get_feature_with(((T23*)_rc),((T0*)ms14_8925));
  156. }
  157.  
  158.  
  159. T0* r264run_class(T264* C){
  160. T0* R=NULL;
  161. /*[IF*/
  162. if(r264is_run_type(C)){
  163. R=r22run_class(r264run_type(C));
  164. }
  165. /*FI]*/
  166. return R;
  167. }
  168.  
  169.  
  170. void r264standard_jvm_check_class_invariant(T264* C){
  171. /*[IF*/
  172. if(r76invariant_check((T76*)(oBC12run_control))){
  173. r23jvm_check_class_invariant((T23*)(r264run_class(C)));
  174. }
  175. /*FI]*/
  176. }
  177. /*No:TYPE_ARRAY.is_like_current*/
  178. /*No:TYPE_ARRAY.is_bit*/
  179. /*No:TYPE_ARRAY.us_storage*/
  180. /*No:TYPE_ARRAY.jvm_write_local*/
  181.  
  182.  
  183. T0* r264smallest_ancestor(T264* C,T0* a1){
  184. T0* R=NULL;
  185. T0* _array_of3=NULL;
  186. T0* _array_of2=NULL;
  187. T0* _array_of1=NULL;
  188. T0* _rto=NULL;
  189. _rto=X52run_type(a1);
  190. /*[IF*/
  191. if(X52is_array(_rto)){
  192. _array_of1=X52run_type(/*(IRF4.6array_of*/r265first(((T265*)((C)->_generic_list/*8*/)))/*)*/);
  193. _array_of2=r265first((T265*)(X52generic_list(_rto)));
  194. _array_of3=X52smallest_ancestor(_array_of1,_array_of2);
  195. /*[IF*/
  196. if((_array_of3)==((void*)(_array_of1))){
  197. R=(T0*)C;
  198. }
  199.  else if((_array_of3)==((void*)(_array_of2))){
  200. R=a1;
  201. }
  202. else{
  203. {T264*n=malloc(sizeof(*n));
  204. *n=M264;
  205. r264make(n,NULL,_array_of3);
  206. R=(T0*)n;
  207. }
  208. }
  209. /*FI]*/
  210. }
  211. else{
  212. R=X52smallest_ancestor(_rto,(T0*)C);
  213. }
  214. /*FI]*/
  215. return R;
  216. }
  217. /*No:TYPE_ARRAY.fatal_error*/
  218.  
  219.  
  220. T0* r264run_time_mark(T264* C){
  221. T0* R=NULL;
  222. /*[IF*/
  223. if(r264is_run_type(C)){
  224. R=X52written_mark(r264run_type(C));
  225. }
  226. /*FI]*/
  227. return R;
  228. }
  229. /*No:TYPE_ARRAY.is_expanded*/
  230. /*No:TYPE_ARRAY.jvm_if_x_eq*/
  231. /*No:TYPE_ARRAY.jvm_xnewarray*/
  232. /*No:TYPE_ARRAY.jvm_push_local*/
  233. /*No:TYPE_ARRAY.is_like_feature*/
  234. /*No:TYPE_ARRAY.fz_dot*/
  235.  
  236.  
  237. T6 r264is_a(T264* C,T0* a1){
  238. T6 R=0;
  239. /*[IF*/
  240. if((r264run_class(C))==((void*)(X52run_class(a1)))){
  241. R=1;
  242. }
  243.  else if(X52is_array(a1)){
  244. R=X52is_a(/*(IRF4.6array_of*/r265first(((T265*)((C)->_generic_list/*8*/)))/*)*/,r265first((T265*)(X52generic_list(a1))));
  245. /*[IF*/
  246. if(!(R)){
  247. /*[IRF3.6extend*/{T3 b1='\40';
  248. r7extend((T7*)(oBC21explanation),b1);
  249. }/*]*/
  250. }
  251. /*FI]*/
  252. }
  253.  else if(r63is_subclass_of((T63*)(r264base_class(C)),X52base_class(a1))){
  254. /*[IF*/
  255. if(X52is_generic(a1)){
  256. R=r63is_a_vncg((T63*)(r264base_class(C)),(T0*)C,a1);
  257. }
  258. else{
  259. R=1;
  260. }
  261. /*FI]*/
  262. }
  263. /*FI]*/
  264. /*[IF*/
  265. if(!(R)){
  266. r21add_type((T0*)C,((T0*)ms13_17730));
  267. r21add_type(a1,((T0*)ms13_47));
  268. }
  269. /*FI]*/
  270. return R;
  271. }
  272. /*No:TYPE_ARRAY.is_character*/
  273. /*No:TYPE_ARRAY.written_mark*/
  274. /*No:TYPE_ARRAY.jvm_convert_to*/
  275.  
  276.  
  277. void r264make(T264* C,T0* a1,T0* a2){
  278. {T70*n=malloc(sizeof(*n));
  279. *n=M70;
  280. r70make(n,((T0*)ms14_1990),a1);
  281. C->_base_class_name=(T0*)n;
  282. }
  283. C->_generic_list=se_ma265(1,
  284. a2);
  285. r7copy((T7*)(oBC264tmp_written_mark),((T0*)ms14_1990));
  286. r7extend((T7*)(oBC264tmp_written_mark),'\133');
  287. r7append((T7*)(oBC264tmp_written_mark),X52written_mark(a2));
  288. r7extend((T7*)(oBC264tmp_written_mark),'\135');
  289. C->_written_mark=r86item(oBC264tmp_written_mark);
  290. }
  291. /*No:TYPE_ARRAY.is_array*/
  292. /*No:TYPE_ARRAY.fz_bga*/
  293.  
  294.  
  295. T2 r264jvm_push_default(void){
  296. T2 R=0;
  297. /*[IRF3.4opcode_aconst_null*/r28opcode((T28*)(oBC12code_attribute),1,1);
  298. /*]*/
  299. R=1;
  300. return R;
  301. }
  302. /*No:TYPE_ARRAY.is_dummy_expanded*/
  303. /*No:TYPE_ARRAY.generic_list*/
  304.  
  305.  
  306. T0* r264base_class(T264* C){
  307. T0* R=NULL;
  308. T0* _bcn=NULL;
  309. _bcn=(C)->_base_class_name/*4*/;
  310. /*[IF*/
  311. if((_bcn)!=((void*)(NULL))){
  312. R=r70base_class(((T70*)_bcn));
  313. }
  314. else{
  315. /*[IRF3.6append*/{T0* b1=((T0*)ms52_37098);
  316. r7append((T7*)(oBC21explanation),b1);
  317. }/*]*/
  318. r21add_type((T0*)C,((T0*)ms13_47));
  319. r21print_as_fatal_error((T21*)(oBC12eh));
  320. }
  321. /*FI]*/
  322. return R;
  323. }
  324. /*No:TYPE_ARRAY.jvm_if_x_ne*/
  325. /*No:TYPE_ARRAY.base_class_name*/
  326. /*No:TYPE_ARRAY.fz_jvm_root*/
  327. /*No:TYPE_ARRAY.us_capacity*/
  328.  
  329.  
  330. void r264jvm_standard_is_equal(T264* C){
  331. T0* _wa=NULL;
  332. T0* _rc=NULL;
  333. _rc=r264run_class(C);
  334. _wa=r23writable_attributes(((T23*)_rc));
  335. r24std_is_equal(_rc,_wa);
  336. }
  337. /*No:TYPE_ARRAY.is_formal_generic*/
  338.  
  339.  
  340. T6 r264is_a_in(T264* C,T0* a1,T0* a2){
  341. T6 R=0;
  342. T0* _ct=NULL;
  343. T0* _t2=NULL;
  344. T0* _t1=NULL;
  345. /*[IF*/
  346. if(((C)->_written_mark/*12*/)==((void*)(X52written_mark(a1)))){
  347. R=1;
  348. }
  349. else{
  350. _ct=(((T23*)a2))->_current_type/*0*/;
  351. _t1=r264to_runnable(C,_ct);
  352. _t2=X52to_runnable(a1,_ct);
  353. /*[IF*/
  354. if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
  355. R=1;
  356. }
  357. else{
  358. R=X52is_a(_t1,_t2);
  359. }
  360. /*FI]*/
  361. }
  362. /*FI]*/
  363. return R;
  364. }
  365.  
  366.  
  367. T0* r264look_up_for(T264* C,T0* a1,T0* a2){
  368. T0* R=NULL;
  369. R=r63look_up_for((T63*)(r264base_class(C)),a1,a2);
  370. return R;
  371. }
  372. /*No:TYPE_ARRAY.array_of*/
  373.  
  374.  
  375. T0* r264run_type(T264* C){
  376. T0* R=NULL;
  377. /*[IF*/
  378. if(r264is_run_type(C)){
  379. R=(C)->_run_type_memory/*16*/;
  380. }
  381. /*FI]*/
  382. return R;
  383. }
  384. /*No:TYPE_ARRAY.expanded_initializer*/
  385.  
  386.  
  387. T6 r264has_creation(T264* C,T0* a1){
  388. T6 R=0;
  389. /*[IF*/
  390. if((C)==((void*)(r264run_type(C)))){
  391. R=r63has_creation((T63*)(r264base_class(C)),a1);
  392. }
  393. else{
  394. R=X52has_creation(r264run_type(C),a1);
  395. }
  396. /*FI]*/
  397. return R;
  398. }
  399. /*No:TYPE_ARRAY.jvm_method_flags*/
  400. /*No:TYPE_ARRAY.is_boolean*/
  401. /*No:TYPE_ARRAY.us_lower*/
  402. /*No:TYPE_ARRAY.us_array*/
  403. /*No:TYPE_ARRAY.is_generic*/
  404. /*No:TYPE_ARRAY.jvm_xaload*/
  405. /*No:TYPE_ARRAY.is_real*/
  406.  
  407.  
  408. void r264with(T264* C,T0* a1,T0* a2,T0* a3){
  409. C->_base_class_name=a1;
  410. C->_generic_list=se_ma265(1,
  411. a3);
  412. C->_written_mark=a2;
  413. {T264*n=malloc(sizeof(*n));
  414. *n=M264;
  415. r264final(n,a1,X52run_type(a3));
  416. C->_run_type_memory=(T0*)n;
  417. }
  418. }
  419.  
  420.  
  421. T0* r264jvm_root_descriptor(void){
  422. if(fBC12jvm_root_descriptor==0){
  423. fBC12jvm_root_descriptor=1;
  424. {T7*n=malloc(sizeof(*n));
  425. *n=M7;
  426. r7make(n,12);
  427. oBC12jvm_root_descriptor=(T0*)n;
  428. }
  429. r7extend(((T7*)oBC12jvm_root_descriptor),'L');
  430. r7append(((T7*)oBC12jvm_root_descriptor),r264jvm_root_class());
  431. r7extend(((T7*)oBC12jvm_root_descriptor),'\73');
  432. }
  433. return oBC12jvm_root_descriptor;}
  434. /*No:TYPE_ARRAY.is_any*/
  435. /*No:TYPE_ARRAY.is_basic_eiffel_expanded*/
  436. /*No:TYPE_ARRAY.jvm_descriptor_in*/
  437. /*No:TYPE_ARRAY.is_string*/
  438.  
  439.  
  440. T6 r264is_native_array(T264* C){
  441. T6 R=0;
  442. T0* _tna=NULL;
  443. _tna=(T0*)C;
  444. if(NULL!=(_tna))switch(((T0*)_tna)->id) {
  445. case 267: 
  446. break;
  447. default:
  448. _tna=NULL;
  449. };R=(_tna)!=((void*)(NULL));
  450. return R;
  451. }
  452. /*No:TYPE_ARRAY.is_integer*/
  453. /*No:TYPE_ARRAY.is_anchored*/
  454. /*No:TYPE_ARRAY.us_upper*/
  455.  
  456.  
  457. T6 r264is_run_type(T264* C){
  458. T6 R=0;
  459. T0* _et=NULL;
  460. /*[IF*/
  461. if(((C)->_run_type_memory/*16*/)!=((void*)(NULL))){
  462. R=1;
  463. }
  464. else{
  465. _et=/*(IRF4.6array_of*/r265first(((T265*)((C)->_generic_list/*8*/)))/*)*/;
  466. /*[IF*/
  467. if((X52is_run_type(_et))&&((X52run_type(_et))==((void*)(_et)))){
  468. C->_run_type_memory=(T0*)C;
  469. R=1;
  470. }
  471. /*FI]*/
  472. }
  473. /*FI]*/
  474. return R;
  475. }
  476. /*No:TYPE_ARRAY.is_reference*/
  477. T0*oBC264tmp_written_mark=NULL;
  478. /*No:TYPE_ARRAY.is_none*/
  479. /*No:TYPE_ARRAY.jvm_return_code*/
  480. /*No:TYPE_ARRAY.jvm_target_descriptor_in*/
  481. /*No:TYPE_ARRAY.fz_inako*/
  482. /*No:TYPE_ARRAY.jvm_xastore*/
  483. /*No:TYPE_ARRAY.is_like_argument*/
  484.  
  485.  
  486. T2 r264jvm_stack_space(void){
  487. T2 R=0;
  488. /*[IF*/
  489. /*AF*//*AE*/
  490. R=1;
  491. /*FI]*/
  492. return R;
  493. }
  494. /*No:TYPE_ARRAY.is_double*/
  495.  
  496.  
  497. T2 r264jvm_expanded_from_reference(T0* a1){
  498. T2 R=0;
  499. return R;
  500. }
  501.  
  502.  
  503. void r264final(T264* C,T0* a1,T0* a2){
  504. C->_base_class_name=a1;
  505. C->_generic_list=se_ma265(1,
  506. a2);
  507. r7copy((T7*)(oBC264tmp_written_mark),((T0*)ms14_1990));
  508. r7extend((T7*)(oBC264tmp_written_mark),'\133');
  509. r7append((T7*)(oBC264tmp_written_mark),X52written_mark(a2));
  510. r7extend((T7*)(oBC264tmp_written_mark),'\135');
  511. C->_written_mark=r86item(oBC264tmp_written_mark);
  512. C->_run_type_memory=(T0*)C;
  513. }
  514. /*No:REAL_CONSTANT.static_value*/
  515. /*No:REAL_CONSTANT.is_static*/
  516. /*No:REAL_CONSTANT.can_be_dropped*/
  517. /*No:REAL_CONSTANT.is_manifest_string*/
  518. /*No:REAL_CONSTANT.start_position*/
  519. /*No:REAL_CONSTANT.to_string*/
  520.  
  521.  
  522. T0* r177add_comment(T177* C,T0* a1){
  523. T0* R=NULL;
  524. /*[IF*/
  525. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
  526. R=(T0*)C;
  527. }
  528. else{
  529. {T234*n=malloc(sizeof(*n));
  530. *n=M234;
  531. r234make(n,(T0*)C,a1);
  532. R=(T0*)n;
  533. }
  534. }
  535. /*FI]*/
  536. return R;
  537. }
  538. /*No:REAL_CONSTANT.compile_target_to_jvm*/
  539.  
  540.  
  541. T2 r177to_integer(T177* C){
  542. T2 R=0;
  543. r177error((C)->_start_position/*4*/,((T0*)ms13_45846));
  544. return R;
  545. }
  546. /*No:REAL_CONSTANT.use_current*/
  547. /*No:REAL_CONSTANT.jvm_branch_if_true*/
  548. /*No:REAL_CONSTANT.to_runnable*/
  549.  
  550.  
  551. T2 r177compile_to_jvm_into(T177* C,T0* a1){
  552. T2 R=0;
  553. /*[IF*/
  554. if(X52is_real(a1)){
  555. r28opcode_push_as_float((T28*)(oBC12code_attribute),(C)->_to_string/*8*/);
  556. R=1;
  557. }
  558.  else if(X52is_double(a1)){
  559. r28opcode_push_as_double((T28*)(oBC12code_attribute),(C)->_to_string/*8*/);
  560. R=2;
  561. }
  562. else{
  563. R=r177standard_compile_to_jvm_into(C,a1);
  564. }
  565. /*FI]*/
  566. return R;
  567. }
  568.  
  569.  
  570. T2 r177isa_dca_inline_argument(void){
  571. T2 R=0;
  572. /*[IF*/
  573. /*AF*//*AE*/
  574. /*FI]*/
  575. return R;
  576. }
  577. /*No:REAL_CONSTANT.is_pre_computable*/
  578. /*No:REAL_CONSTANT.fz_iinaiv*/
  579. int fBC177result_type=0;
  580. T0*oBC177result_type=NULL;
  581.  
  582.  
  583. T0* r177result_type(void){
  584. if(fBC177result_type==0){
  585. fBC177result_type=1;
  586. {T275*n=malloc(sizeof(*n));
  587. *n=M275;
  588. r275make(n,NULL);
  589. oBC177result_type=(T0*)n;
  590. }
  591. }
  592. return oBC177result_type;}
  593.  
  594.  
  595. void r177error(T0* a1,T0* a2){
  596. r21add_position(a1);
  597. r21error((T21*)(oBC12eh),a2);
  598. }
  599.  
  600.  
  601. void r177make(T177* C,T0* a1,T0* a2){
  602. C->_start_position=a1;
  603. C->_to_string=a2;
  604. }
  605. /*No:REAL_CONSTANT.compile_to_jvm_assignment*/
  606. /*No:REAL_CONSTANT.is_current*/
  607. /*No:REAL_CONSTANT.unary_minus*/
  608.  
  609.  
  610. T2 r177standard_compile_to_jvm_into(T177* C,T0* a1){
  611. T2 R=0;
  612. /*[IRF3.6compile_to_jvm*/{T177* C1=C;
  613. r28opcode_push_as_float((T28*)(oBC12code_attribute),(C1)->_to_string/*8*/);
  614. }/*]*/
  615. R=X52jvm_convert_to(/*(IRF4.4run_type*/((T0*)((T275*)r177result_type()))/*)*/,a1);
  616. return R;
  617. }
  618. /*No:REAL_CONSTANT.is_void*/
  619. /*No:REAL_CONSTANT.compile_to_jvm_old*/
  620. /*No:REAL_CONSTANT.jvm_assign*/
  621. /*No:REAL_CONSTANT.jvm_branch_if_false*/
  622. /*No:REAL_CONSTANT.compile_to_jvm*/
  623. /*No:REAL_CONSTANT.afd_check*/
  624. /*No:REAL_CONSTANT.is_result*/
  625. /*No:LOCAL_NAME2.static_value*/
  626. /*No:LOCAL_NAME2.is_static*/
  627. /*No:LOCAL_NAME2.is_manifest_string*/
  628. /*No:LOCAL_NAME2.start_position*/
  629.  
  630.  
  631. T0* r184add_comment(T184* C,T0* a1){
  632. T0* R=NULL;
  633. /*[IF*/
  634. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
  635. R=(T0*)C;
  636. }
  637. else{
  638. {T234*n=malloc(sizeof(*n));
  639. *n=M234;
  640. r234make(n,(T0*)C,a1);
  641. R=(T0*)n;
  642. }
  643. }
  644. /*FI]*/
  645. return R;
  646. }
  647.  
  648.  
  649. T2 r184to_integer(T184* C){
  650. T2 R=0;
  651. r184error((C)->_start_position/*4*/,((T0*)ms13_45846));
  652. return R;
  653. }
  654. /*No:LOCAL_NAME2.rank*/
  655. /*No:LOCAL_NAME2.use_current*/
  656.  
  657.  
  658. T2 r184jvm_branch_if_true(T184* C){
  659. T2 R=0;
  660. r184compile_to_jvm(C);
  661. R=r28opcode_ifne((T28*)(oBC12code_attribute));
  662. return R;
  663. }
  664.  
  665.  
  666. T0* r184to_runnable(T184* C,T0* a1){
  667. T0* R=NULL;
  668. T0* _lvl=NULL;
  669. T0* _rf=NULL;
  670. _rf=r22top_rf((T22*)(oBC12small_eiffel));
  671. _lvl=X27local_vars(_rf);
  672. /*[IF*/
  673. if(((C)->_local_var_list/*12*/)==((void*)(_lvl))){
  674. R=(T0*)C;
  675. }
  676. else{
  677. {T184*n=malloc(sizeof(*n));
  678. *n=M184;
  679. r184refer_to(n,(C)->_start_position/*4*/,_lvl,(C)->_rank/*8*/);
  680. R=(T0*)n;
  681. }
  682. }
  683. /*FI]*/
  684. /*[IRF3.3set_is_used*/((((T187*)((T187*)(/*(IRF4.6name*/r189item(((T189*)((((T182*)_lvl))->_flat_list/*8*/)),(C)->_rank/*8*/)/*)*/))))->_is_used)=(1);
  685. /*]*/
  686. return R;
  687. }
  688.  
  689.  
  690. T2 r184compile_to_jvm_into(T184* C,T0* a1){
  691. T2 R=0;
  692. R=r184standard_compile_to_jvm_into(C,a1);
  693. return R;
  694. }
  695. /*No:LOCAL_NAME2.is_pre_computable*/
  696. /*No:LOCAL_NAME2.fz_iinaiv*/
  697.  
  698.  
  699. T0* r184result_type(T184* C){
  700. T0* R=NULL;
  701. R=r182type((T182*)((C)->_local_var_list/*12*/),(C)->_rank/*8*/);
  702. return R;
  703. }
  704.  
  705.  
  706. void r184standard_compile_target_to_jvm(T184* C){
  707. r184compile_to_jvm(C);
  708. X52jvm_check_class_invariant(r184result_type(C));
  709. }
  710.  
  711.  
  712. void r184compile_to_jvm_assignment(T184* C,T0* a1){
  713. T2 _jvm_offset=0;
  714. T2 _space=0;
  715. _jvm_offset=r24local_offset_of((T24*)(oBC12jvm),(T0*)C);
  716. _space=X109compile_to_jvm_into((((T287*)a1))->_right_side/*8*/,X52run_type(r184result_type(C)));
  717. X52jvm_write_local(X52run_type(r184result_type(C)),_jvm_offset);
  718. }
  719. /*No:LOCAL_NAME2.compile_to_jvm_old*/
  720.  
  721.  
  722. void r184jvm_assign(T184* C){
  723. T2 _jvm_offset=0;
  724. _jvm_offset=r24local_offset_of((T24*)(oBC12jvm),(T0*)C);
  725. X52jvm_write_local(X52run_type(r184result_type(C)),_jvm_offset);
  726. }
  727.  
  728.  
  729. T2 r184jvm_branch_if_false(T184* C){
  730. T2 R=0;
  731. r184compile_to_jvm(C);
  732. R=r28opcode_ifeq((T28*)(oBC12code_attribute));
  733. return R;
  734. }
  735.  
  736.  
  737. void r184compile_to_jvm(T184* C){
  738. T2 _jvm_offset=0;
  739. _jvm_offset=r24local_offset_of((T24*)(oBC12jvm),(T0*)C);
  740. X52jvm_push_local(X52run_type(r184result_type(C)),_jvm_offset);
  741. }
  742. /*No:LOCAL_NAME2.is_result*/
  743. /*No:LOCAL_NAME2.can_be_dropped*/
  744. /*No:LOCAL_NAME2.compile_target_to_jvm*/
  745. /*No:LOCAL_NAME2.local_var_list*/
  746. /*No:LOCAL_NAME2.isa_dca_inline_argument*/
  747.  
  748.  
  749. void r184refer_to(T184* C,T0* a1,T0* a2,T2 a3){
  750. C->_start_position=a1;
  751. C->_local_var_list=a2;
  752. C->_rank=a3;
  753. }
  754.  
  755.  
  756. void r184error(T0* a1,T0* a2){
  757. r21add_position(a1);
  758. r21error((T21*)(oBC12eh),a2);
  759. }
  760. /*No:LOCAL_NAME2.is_current*/
  761.  
  762.  
  763. T2 r184standard_compile_to_jvm_into(T184* C,T0* a1){
  764. T2 R=0;
  765. r184compile_to_jvm(C);
  766. R=X52jvm_convert_to(X52run_type(r184result_type(C)),a1);
  767. return R;
  768. }
  769. /*No:LOCAL_NAME2.is_void*/
  770. /*No:LOCAL_NAME2.afd_check*/
  771. /*No:RUN_FEATURE_7.us_copy*/
  772. /*No:RUN_FEATURE_7.rescue_compound*/
  773.  
  774.  
  775. void r387fall_down(T387* C){
  776. T0* _rf=NULL;
  777. T0* _sub_name=NULL;
  778. T0* _sub_bc=NULL;
  779. T0* _current_bc=NULL;
  780. T0* _sub_rc=NULL;
  781. T0* _current_rc=NULL;
  782. T2 _i=0;
  783. T0* _running=NULL;
  784. _current_rc=X52run_class((C)->_current_type/*4*/);
  785. _running=(((T23*)_current_rc))->_running/*12*/;
  786. /*[IF*/
  787. if((_running)!=((void*)(NULL))){
  788. _current_bc=X52base_class((C)->_current_type/*4*/);
  789. _i=(((T340*)_running))->_lower/*12*/;
  790. while (!((_i)>((((T340*)_running))->_upper/*8*/))) {
  791. _sub_rc=r340item(((T340*)_running),_i);
  792. /*[IF*/
  793. if((_sub_rc)!=((void*)(_current_rc))){
  794. _sub_bc=X52base_class((((T23*)_sub_rc))->_current_type/*0*/);
  795. _sub_name=r63new_name_of(((T63*)_sub_bc),_current_bc,(C)->_name/*16*/);
  796. _rf=r23get_feature(((T23*)_sub_rc),_sub_name);
  797. }
  798. /*FI]*/
  799. _i=(_i)+(1);
  800. }
  801. }
  802. /*FI]*/
  803. }
  804. /*No:RUN_FEATURE_7.use_current_state*/
  805. /*No:RUN_FEATURE_7.actuals_clients*/
  806. /*No:RUN_FEATURE_7.ucs_false*/
  807. /*No:RUN_FEATURE_7.is_static*/
  808.  
  809.  
  810. T0* r387start_position(T387* C){
  811. T0* R=NULL;
  812. R=r295start_position((T295*)((C)->_base_feature/*32*/));
  813. return R;
  814. }
  815.  
  816.  
  817. void r387routine_mapping_jvm(T387* C){
  818. T2 _stack_level=0;
  819. T2 _idx=0;
  820. T0* _ct=NULL;
  821. T0* _rt=NULL;
  822. _ct=(C)->_current_type/*4*/;
  823. r24push_target_as_target((T24*)(oBC12jvm));
  824. _stack_level=-((1)+(r24push_arguments((T24*)(oBC12jvm))));
  825. _rt=/*(IRF4.1result_type*/NULL/*)*/;
  826. /*[IF*/
  827. if((_rt)!=((void*)(NULL))){
  828. _stack_level=(_stack_level)+(X52jvm_stack_space(_rt));
  829. }
  830. /*FI]*/
  831. _idx=r29idx_methodref((T29*)(oBC12constant_pool),(T0*)C);
  832. r23jvm_invoke((T23*)(X52run_class(_ct)),_idx,_stack_level);
  833. }
  834.  
  835.  
  836. T6 r387use_current(T387* C){
  837. T6 R=0;
  838. {int z1=(C)->_use_current_state/*28*/;
  839.  
  840. if((14==z1)){
  841. R=1;
  842. }
  843.  else 
  844. if((13==z1)){
  845. }
  846.  else 
  847. if((15==z1)){
  848. C->_use_current_state=16;
  849. r387compute_use_current(C);
  850. R=r387use_current(C);
  851. }
  852.  else {R=1;
  853. }}
  854. return R;
  855. }
  856.  
  857.  
  858. void r387mapping_jvm(T387* C){
  859. T0* _bcn=NULL;
  860. T0* _native=NULL;
  861. T0* _bf=NULL;
  862. _bf=(C)->_base_feature/*32*/;
  863. _native=(((T295*)_bf))->_native/*40*/;
  864. _bcn=((T70*)(((T63*)((((T295*)_bf))->_base_class/*4*/))->_name/*24*/))->_to_string/*0*/;
  865. X293jvm_mapping_procedure(_native,(T0*)C,_bcn,X50to_string(/*(IRF4.6first_name*/r87item(((T87*)((((T295*)_bf))->_names/*8*/)),1)/*)*/));
  866. }
  867.  
  868.  
  869. void r387routine_afd_check(T387* C){
  870. /*[IF*/
  871. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  872. r367afd_check((T367*)((C)->_require_assertion/*20*/));
  873. }
  874. /*FI]*/
  875. /*[IF*/
  876. /*AF*//*AE*/
  877. /*FI]*/
  878. /*[IF*/
  879. /*AF*//*AE*/
  880. /*FI]*/
  881. /*[IF*/
  882. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  883. r219afd_check((T219*)((C)->_ensure_assertion/*24*/));
  884. }
  885. /*FI]*/
  886. }
  887. /*No:RUN_FEATURE_7.ucs_not_computed*/
  888. /*No:RUN_FEATURE_7.is_pre_computable*/
  889.  
  890.  
  891. void r387std_compute_use_current(T387* C){
  892. /*[IF*/
  893. if(((C)->_use_current_state/*28*/)==(16)){
  894. /*[IF*/
  895. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  896. /*[IF*/
  897. if(r367use_current((T367*)((C)->_require_assertion/*20*/))){
  898. C->_use_current_state=14;
  899. }
  900. /*FI]*/
  901. }
  902. /*FI]*/
  903. }
  904. /*FI]*/
  905. /*[IF*/
  906. if(((C)->_use_current_state/*28*/)==(16)){
  907. /*[IF*/
  908. /*AF*//*AE*/
  909. /*FI]*/
  910. }
  911. /*FI]*/
  912. /*[IF*/
  913. if(((C)->_use_current_state/*28*/)==(16)){
  914. /*[IF*/
  915. /*AF*//*AE*/
  916. /*FI]*/
  917. }
  918. /*FI]*/
  919. /*[IF*/
  920. if(((C)->_use_current_state/*28*/)==(16)){
  921. /*[IF*/
  922. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  923. /*[IF*/
  924. if(r219use_current((T219*)((C)->_ensure_assertion/*24*/))){
  925. C->_use_current_state=14;
  926. }
  927. /*FI]*/
  928. }
  929. /*FI]*/
  930. }
  931. /*FI]*/
  932. /*[IF*/
  933. if(((C)->_use_current_state/*28*/)==(16)){
  934. C->_use_current_state=13;
  935. }
  936. /*FI]*/
  937. }
  938.  
  939.  
  940. T0* r387run_class(T387* C){
  941. T0* R=NULL;
  942. R=X52run_class((C)->_current_type/*4*/);
  943. return R;
  944. }
  945. /*No:RUN_FEATURE_7.result_type*/
  946. /*No:RUN_FEATURE_7.base_feature*/
  947. /*No:RUN_FEATURE_7.static_value_mem*/
  948. /*No:RUN_FEATURE_7.ensure_assertion*/
  949.  
  950.  
  951. T2 r387jvm_local_variable_offset(T387* C,T0* a1){
  952. T2 R=0;
  953. R=X52jvm_stack_space((C)->_current_type/*4*/);
  954. /*[IF*/
  955. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  956. R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
  957. }
  958. /*FI]*/
  959. R=(R)+(r182jvm_offset_of((T182*)(/*(IRF4.1local_vars*/NULL/*)*/),a1));
  960. return R;
  961. }
  962.  
  963.  
  964. T2 r387arg_count(T387* C){
  965. T2 R=0;
  966. /*[IF*/
  967. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  968. R=/*(IRF4.6count*/(((T195*)(((T191*)((C)->_arguments/*36*/))->_flat_list/*8*/)))->_upper/*12*//*)*/;
  969. }
  970. /*FI]*/
  971. return R;
  972. }
  973. /*No:RUN_FEATURE_7.fz_19*/
  974.  
  975.  
  976. T6 r387is_exported_in(T387* C,T0* a1){
  977. T6 R=0;
  978. R=r103gives_permission_to((T103*)(r387clients(C)),a1);
  979. return R;
  980. }
  981. /*No:RUN_FEATURE_7.us_raise_exception*/
  982. /*No:RUN_FEATURE_7.arguments*/
  983.  
  984.  
  985. T2 r387jvm_argument_offset(T387* C,T0* a1){
  986. T2 R=0;
  987. R=X52jvm_stack_space((C)->_current_type/*4*/);
  988. R=(R)+(r191jvm_offset_of((T191*)((C)->_arguments/*36*/),a1));
  989. return R;
  990. }
  991. /*No:RUN_FEATURE_7.can_be_dropped*/
  992.  
  993.  
  994. void r387initialize(T387* C){
  995. T0* _n=NULL;
  996. _n=X50to_string(/*(IRF4.6first_name*/r87item(((T87*)(((T295*)((C)->_base_feature/*32*/))->_names/*8*/)),1)/*)*/);
  997. C->_arguments=((T295*)((C)->_base_feature/*32*/))->_arguments/*20*/;
  998. /*[IF*/
  999. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1000. /*[IF*/
  1001. if(!(r191is_runnable((T191*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
  1002. {T191*n=malloc(sizeof(*n));
  1003. *n=M191;
  1004. r191with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
  1005. C->_arguments=(T0*)n;
  1006. }
  1007. }
  1008. /*FI]*/
  1009. }
  1010. /*FI]*/
  1011. /*[IF*/
  1012. if(r76require_check((T76*)(oBC12run_control))){
  1013. /*[IF*/
  1014. if(((((T0*)ms14_1812))==((void*)(X50to_string((C)->_name/*16*/))))&&(X52is_expanded((C)->_current_type/*4*/))){
  1015. }
  1016. else{
  1017. C->_require_assertion=r295run_require((T0*)C);
  1018. }
  1019. /*FI]*/
  1020. }
  1021. /*FI]*/
  1022. /*[IF*/
  1023. if(r76ensure_check((T76*)(oBC12run_control))){
  1024. C->_ensure_assertion=r295run_ensure((T0*)C);
  1025. }
  1026. /*FI]*/
  1027. /*[IF*/
  1028. if((((T0*)ms14_32955))==((void*)(_n))){
  1029. /*[IRF3.3set_used*/((((T362*)((T362*)(oBC12exceptions_handler))))->_used)=(1);
  1030. /*]*/
  1031. }
  1032. /*FI]*/
  1033. }
  1034. /*No:RUN_FEATURE_7.require_assertion*/
  1035. /*No:RUN_FEATURE_7.update_tmp_jvm_descriptor*/
  1036.  
  1037.  
  1038. T2 r387jvm_max_locals(T387* C){
  1039. T2 R=0;
  1040. R=X52jvm_stack_space((C)->_current_type/*4*/);
  1041. /*[IF*/
  1042. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1043. R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
  1044. }
  1045. /*FI]*/
  1046. /*[IF*/
  1047. /*AF*//*AE*/
  1048. /*FI]*/
  1049. /*[IF*/
  1050. /*AF*//*AE*/
  1051. /*FI]*/
  1052. return R;
  1053. }
  1054.  
  1055.  
  1056. void r387jvm_opening(T387* C){
  1057. r387method_info_start(C);
  1058. r387jvm_define_opening(C);
  1059. }
  1060.  
  1061.  
  1062. void r387jvm_define_opening(T387* C){
  1063. T0* _t=NULL;
  1064. /*[IF*/
  1065. /*AF*//*AE*/
  1066. /*FI]*/
  1067. /*[IF*/
  1068. /*AF*//*AE*/
  1069. /*FI]*/
  1070. /*[IF*/
  1071. if(r76ensure_check((T76*)(oBC12run_control))){
  1072. /*[IF*/
  1073. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  1074. r219compile_to_jvm_old((T219*)((C)->_ensure_assertion/*24*/));
  1075. }
  1076. /*FI]*/
  1077. }
  1078. /*FI]*/
  1079. /*[IF*/
  1080. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  1081. r367compile_to_jvm((T367*)((C)->_require_assertion/*20*/));
  1082. }
  1083. /*FI]*/
  1084. }
  1085.  
  1086.  
  1087. void r387jvm_define_closing(T387* C){
  1088. /*[IF*/
  1089. if(r76ensure_check((T76*)(oBC12run_control))){
  1090. /*[IF*/
  1091. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  1092. r219compile_to_jvm((T219*)((C)->_ensure_assertion/*24*/),1);
  1093. /*[IRF3.4opcode_pop*/r28opcode((T28*)(oBC12code_attribute),87,-(1));
  1094. /*]*/
  1095. }
  1096. /*FI]*/
  1097. }
  1098. /*FI]*/
  1099. /*[IF*/
  1100. /*AF*//*AE*/
  1101. /*FI]*/
  1102. }
  1103. /*No:RUN_FEATURE_7.clients_memory*/
  1104. /*No:RUN_FEATURE_7.current_type*/
  1105.  
  1106.  
  1107. void r387add_client(T387* C,T0* a1){
  1108. T2 _i=0;
  1109. /*[IF*/
  1110. if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
  1111. {T343*n=malloc(sizeof(*n));
  1112. *n=M343;
  1113. r343with_capacity(n,4);
  1114. C->_actuals_clients=(T0*)n;
  1115. }
  1116. r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
  1117. }
  1118. else{
  1119. _i=r343fast_index_of((T343*)((C)->_actuals_clients/*12*/),a1);
  1120. /*[IF*/
  1121. if((_i)>(((T343*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
  1122. r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
  1123. }
  1124. /*FI]*/
  1125. }
  1126. /*FI]*/
  1127. r23add_client((T23*)(r387run_class(C)),a1);
  1128. }
  1129. /*No:RUN_FEATURE_7.ucs_in_computation*/
  1130.  
  1131.  
  1132. void r387compute_use_current(T387* C){
  1133. /*[IF*/
  1134. if(r295use_current((T295*)((C)->_base_feature/*32*/))){
  1135. C->_use_current_state=14;
  1136. }
  1137. else{
  1138. r387std_compute_use_current(C);
  1139. }
  1140. /*FI]*/
  1141. }
  1142.  
  1143.  
  1144. void r387method_info_start(T387* C){
  1145. T2 _flags=0;
  1146. _flags=X52jvm_method_flags((C)->_current_type/*4*/);
  1147. r39start((T39*)(oBC12method_info),_flags,X50to_key((C)->_name/*16*/),r387jvm_descriptor(C));
  1148. }
  1149.  
  1150.  
  1151. void r387make(T387* C,T0* a1,T0* a2,T0* a3){
  1152. C->_current_type=a1;
  1153. C->_name=a2;
  1154. C->_base_feature=a3;
  1155. /*[IRF3.5add_rf*/r333put(((T333*)(((T23*)(r387run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X50to_key(a2));
  1156. /*]*/
  1157. r22incr_magic_count((T22*)(oBC12small_eiffel));
  1158. C->_use_current_state=15;
  1159. r22push((T22*)(oBC12small_eiffel),(T0*)C);
  1160. r387initialize(C);
  1161. r22pop((T22*)(oBC12small_eiffel));
  1162. }
  1163. /*No:RUN_FEATURE_7.ucs_true*/
  1164. /*No:RUN_FEATURE_7.routine_body*/
  1165.  
  1166.  
  1167. void r387jvm_define(T387* C){
  1168. T0* _bcn=NULL;
  1169. T0* _native=NULL;
  1170. T0* _bf=NULL;
  1171. _bf=(C)->_base_feature/*32*/;
  1172. _native=(((T295*)_bf))->_native/*40*/;
  1173. _bcn=((T70*)(((T63*)((((T295*)_bf))->_base_class/*4*/))->_name/*24*/))->_to_string/*0*/;
  1174. X293jvm_define_procedure(_native,(T0*)C,_bcn,X50to_string(/*(IRF4.6first_name*/r87item(((T87*)((((T295*)_bf))->_names/*8*/)),1)/*)*/));
  1175. }
  1176. /*No:RUN_FEATURE_7.name*/
  1177. /*No:RUN_FEATURE_7.local_vars*/
  1178.  
  1179.  
  1180. T2 r387jvm_result_offset(T387* C){
  1181. T2 R=0;
  1182. R=X52jvm_stack_space((C)->_current_type/*4*/);
  1183. /*[IF*/
  1184. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1185. R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
  1186. }
  1187. /*FI]*/
  1188. /*[IF*/
  1189. /*AF*//*AE*/
  1190. /*FI]*/
  1191. return R;
  1192. }
  1193.  
  1194.  
  1195. void r387routine_update_tmp_jvm_descriptor(T387* C){
  1196. T0* _rt=NULL;
  1197. T0* _ct=NULL;
  1198. r7extend((T7*)(oBC27tmp_jvm_descriptor),'\50');
  1199. _ct=(C)->_current_type/*4*/;
  1200. X52jvm_target_descriptor_in(_ct,oBC27tmp_jvm_descriptor);
  1201. /*[IF*/
  1202. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1203. r191jvm_descriptor_in((T191*)((C)->_arguments/*36*/),oBC27tmp_jvm_descriptor);
  1204. }
  1205. /*FI]*/
  1206. _rt=/*(IRF4.1result_type*/NULL/*)*/;
  1207. /*[IF*/
  1208. if((_rt)==((void*)(NULL))){
  1209. r7append((T7*)(oBC27tmp_jvm_descriptor),((T0*)ms13_260));
  1210. }
  1211. else{
  1212. _rt=X52run_type(_rt);
  1213. r7extend((T7*)(oBC27tmp_jvm_descriptor),'\51');
  1214. X52jvm_descriptor_in(_rt,oBC27tmp_jvm_descriptor);
  1215. }
  1216. /*FI]*/
  1217. }
  1218.  
  1219.  
  1220. void r387jvm_field_or_method(T387* C){
  1221. T0* _bcn=NULL;
  1222. T0* _native=NULL;
  1223. T0* _bf=NULL;
  1224. _bf=(C)->_base_feature/*32*/;
  1225. _native=(((T295*)_bf))->_native/*40*/;
  1226. _bcn=((T70*)(((T63*)((((T295*)_bf))->_base_class/*4*/))->_name/*24*/))->_to_string/*0*/;
  1227. X293jvm_add_method_for_procedure(_native,(T0*)C,_bcn,X50to_string(/*(IRF4.6first_name*/r87item(((T87*)((((T295*)_bf))->_names/*8*/)),1)/*)*/));
  1228. }
  1229. /*No:RUN_FEATURE_7.afd_check*/
  1230.  
  1231.  
  1232. void r387jvm_closing(T387* C){
  1233. r387jvm_define_closing(C);
  1234. /*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{T2 b1=177;
  1235. r48add_last((T48*)(oBC28code),b1);
  1236. }/*]*/
  1237. /*]*/
  1238. r39finish((T39*)(oBC12method_info));
  1239. }
  1240.  
  1241.  
  1242. T0* r387clients(T387* C){
  1243. T0* R=NULL;
  1244. T0* _bfbc=NULL;
  1245. T0* _bc=NULL;
  1246. /*[IF*/
  1247. if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
  1248. _bc=X52base_class((C)->_current_type/*4*/);
  1249. _bfbc=((T295*)((C)->_base_feature/*32*/))->_base_class/*4*/;
  1250. /*[IF*/
  1251. if((_bc)==((void*)(_bfbc))){
  1252. R=((T295*)((C)->_base_feature/*32*/))->_clients/*16*/;
  1253. }
  1254. else{
  1255. R=r63clients_for(((T63*)_bc),(C)->_name/*16*/);
  1256. }
  1257. /*FI]*/
  1258. C->_clients_memory=R;
  1259. }
  1260. else{
  1261. R=(C)->_clients_memory/*8*/;
  1262. }
  1263. /*FI]*/
  1264. return R;
  1265. }
  1266.  
  1267.  
  1268. T0* r387jvm_descriptor(T387* C){
  1269. T0* R=NULL;
  1270. /*[IRF3.3clear*/((((T7*)((T7*)(oBC27tmp_jvm_descriptor))))->_count)=(0);
  1271. /*]*/
  1272. /*[IRF3.4update_tmp_jvm_descriptor*/r387routine_update_tmp_jvm_descriptor(C);
  1273. /*]*/
  1274. R=oBC27tmp_jvm_descriptor;
  1275. return R;
  1276. }
  1277.  
  1278.